home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_qt.idb / usr / freeware / include / Qt / qobject.h.z / qobject.h
Encoding:
C/C++ Source or Header  |  1998-10-28  |  5.1 KB  |  183 lines

  1. /****************************************************************************
  2. ** $Id: qobject.h,v 2.11 1998/07/03 00:09:35 hanord Exp $
  3. **
  4. ** Definition of QObject class
  5. **
  6. ** Created : 930418
  7. **
  8. ** Copyright (C) 1992-1998 Troll Tech AS.  All rights reserved.
  9. **
  10. ** This file is part of Qt Free Edition, version 1.40.
  11. **
  12. ** See the file LICENSE included in the distribution for the usage
  13. ** and distribution terms, or http://www.troll.no/free-license.html.
  14. **
  15. ** IMPORTANT NOTE: You may NOT copy this file or any part of it into
  16. ** your own programs or libraries.
  17. **
  18. ** Please see http://www.troll.no/pricing.html for information about 
  19. ** Qt Professional Edition, which is this same library but with a
  20. ** license which allows creation of commercial/proprietary software.
  21. **
  22. *****************************************************************************/
  23.  
  24. #ifndef QOBJECT_H
  25. #define QOBJECT_H
  26.  
  27. #ifndef QT_H
  28. #include "qobjectdefs.h"
  29. #include "qstring.h"
  30. #include "qevent.h"
  31. #endif // QT_H
  32.  
  33.  
  34. class QObject                    // base class for Q objects
  35. {
  36. public:
  37.     QObject( QObject *parent=0, const char *name=0 );
  38.     virtual ~QObject();
  39.  
  40.     virtual bool event( QEvent * );
  41.     virtual bool eventFilter( QObject *, QEvent * );
  42.  
  43.     const char * tr( const char * ) const;
  44.  
  45.     virtual QMetaObject *metaObject() const { return metaObj; }
  46.     virtual const char    *className()  const;
  47.  
  48.     bool    isA( const char * )     const;
  49.     bool    inherits( const char * ) const;
  50.  
  51.     const char *name()          const { return objname; }
  52.     const char *name( const char * defaultName ) const { return objname
  53.                                  ? objname
  54.                                  : defaultName; }
  55.  
  56.     void    setName( const char *name );
  57.     bool    isWidgetType()      const { return isWidget; }
  58.     bool    highPriority()      const { return hiPriority; }
  59.  
  60.     bool    signalsBlocked()  const { return blockSig; }
  61.     void    blockSignals( bool b );
  62.  
  63.     int        startTimer( int interval );
  64.     void    killTimer( int id );
  65.     void    killTimers();
  66.  
  67.     const QObjectList *children() const { return childObjects; }
  68.     QObjectList          *queryList( const char *inheritsClass = 0,
  69.                   const char *objName = 0,
  70.                   bool regexpMatch = TRUE,
  71.                   bool recursiveSearch = TRUE );
  72.  
  73.     void    insertChild( QObject * );
  74.     void    removeChild( QObject * );
  75.  
  76.     void    installEventFilter( const QObject * );
  77.     void    removeEventFilter( const QObject * );
  78.  
  79.     static bool connect( const QObject *sender, const char *signal,
  80.              const QObject *receiver, const char *member );
  81.     bool    connect( const QObject *sender, const char *signal,
  82.              const char *member ) const;
  83.     static bool disconnect( const QObject *sender, const char *signal,
  84.                 const QObject *receiver, const char *member );
  85.     bool    disconnect( const char *signal=0,
  86.                 const QObject *receiver=0, const char *member=0 );
  87.     bool    disconnect( const QObject *receiver, const char *member=0 );
  88.  
  89.     void    dumpObjectTree();
  90.     void    dumpObjectInfo();
  91.  
  92. signals:
  93.     void    destroyed();
  94.  
  95. public:
  96.     QObject    *parent() const { return parentObj; }
  97.  
  98. protected:
  99.     bool    activate_filters( QEvent * );
  100.     QConnectionList *receivers( const char *signal ) const;
  101.     void    activate_signal( const char *signal );
  102.     void    activate_signal( const char *signal, short );
  103.     void    activate_signal( const char *signal, int );
  104.     void    activate_signal( const char *signal, long );
  105.     void    activate_signal( const char *signal, const char * );
  106.     const QObject *sender();
  107.  
  108.     virtual void initMetaObject();
  109.  
  110.     virtual void timerEvent( QTimerEvent * );
  111.  
  112.     virtual void connectNotify( const char *signal );
  113.     virtual void disconnectNotify( const char *signal );
  114.     virtual bool checkConnectArgs( const char *signal, const QObject *receiver,
  115.                    const char *member );
  116.  
  117.     static  void badSuperclassWarning( const char *className,
  118.                        const char *superclassName );
  119.  
  120.     uint    isSignal   : 1;
  121.     uint    isWidget   : 1;
  122.     uint    hiPriority : 1;
  123.     uint    pendTimer  : 1;
  124.     uint    pendEvent  : 1;
  125.     uint    blockSig   : 1;
  126.  
  127. private slots:
  128.     void    cleanupEventFilter();
  129.  
  130. private:
  131.     QMetaObject *queryMetaObject() const;
  132.     static QMetaObject *metaObj;
  133.     char    *objname;
  134.     QObject    *parentObj;
  135.     QObjectList *childObjects;
  136.     QSignalDict *connections;
  137.     QObjectList *senderObjects;
  138.     QObjectList *eventFilters;
  139.     QObject    *sigSender;
  140.  
  141.     friend class QApplication;
  142.     friend class QWidget;
  143.     friend class QSignal;
  144.     friend class QSenderObject;
  145.  
  146. private:    // Disabled copy constructor and operator=
  147.     QObject( const QObject & );
  148.     QObject &operator=( const QObject & );
  149. };
  150.  
  151.  
  152. inline bool QObject::connect( const QObject *sender, const char *signal,
  153.                   const char *member ) const
  154. {
  155.     return connect( sender, signal, this, member );
  156. }
  157.  
  158. inline bool QObject::disconnect( const char *signal,
  159.                  const QObject *receiver, const char *member )
  160. {
  161.     return disconnect( this, signal, receiver, member );
  162. }
  163.  
  164. inline bool QObject::disconnect( const QObject *receiver, const char *member )
  165. {
  166.     return disconnect( this, 0, receiver, member );
  167. }
  168.  
  169. inline const QObject *QObject::sender()
  170. {
  171.     return sigSender;
  172. }
  173.  
  174.  
  175. class QSenderObject : public QObject        // object for sending signals
  176. {
  177. public:
  178.     void setSender( QObject *s ) { sigSender=s; }
  179. };
  180.  
  181.  
  182. #endif // QOBJECT_H
  183.